package com.java2007.zhangyu.restaurant.dao;

import com.java2007.zhangyu.restaurant.entity.PageBean;
import com.java2007.zhangyu.restaurant.pojo.DinnerTable;
import com.java2007.zhangyu.restaurant.pojo.Food;
import com.java2007.zhangyu.restaurant.pojo.FoodType;

import java.sql.SQLException;
import java.util.List;

/**
 * 菜品持久层接口
 * @author zy
 * @Version
 * @date 2021/01/27
 */
public interface FoodDao {
    /**
     * 添加菜品信息
     * @param food
     * @return 若返回-1表示增加菜品失败，若返回1表示增加菜品成功
     * @throws SQLException
     */
    int save(Food food) throws SQLException;

    /**
     * 根据菜品id删除
     * @param fID 菜品id
     * @return 若返回-1表示删除菜品信息失败，若返回1表示删除菜品信息成功
     * @throws SQLException
     */
    int deleteByFoodId(Integer fID) throws SQLException;

    /**
     * 更新菜品
     * @param food 菜品实例对象
     * @return 若返回-1表示更新菜品信息失败，若返回1表示更新菜品信息成功
     * @throws SQLException
     */
    int update(Food food) throws SQLException;

    /**
     * 根据菜品id查询
     * @param fId 菜品id
     * @return
     * @throws SQLException
     */
    Food queryByFoodId(Integer fId) throws SQLException;

    /**
     * 根据菜品名模糊查询菜品信息
     * @param fName 菜品名
     * @return
     * @throws SQLException
     */
    List<Food> queryByFoodName(String fName) throws SQLException;

    /**
     * 查询所有菜品信息
     * @return
     * @throws Exception
     */
    List<Food> queryAll() throws Exception;

    /**
     * 查询页面展示的菜品信息
     * @param startPage 起始页
     * @param pageSize 页大小
     * @param food 菜品实体对象
     * @return
     * @throws Exception
     */
    List<Food> queryPage(Integer startPage, Integer pageSize,Food food) throws Exception;

    /**
     * 查询菜品的总数
     * @param food
     * @return
     * @throws SQLException
     */
    Long getCount(Food food) throws SQLException;

    /**
     * 查询菜品是否已存在
     * @param fName
     * @return
     */
    Food selectFoodByFName(String fName) throws SQLException;
}
